library(sf)
library(tidyverse)
library(ggplot2)
library(janitor)
package ‘janitor’ was built under R version 3.6.2
Attaching package: ‘janitor’

The following objects are masked from ‘package:stats’:

    chisq.test, fisher.test
loc_authority_with_extra_density_2019 <- read_csv("data/loc_authority_with_extra_density_2019.csv")

── Column specification ─────────────────────────────────────────────────────────────────────────────────
cols(
  year = col_double(),
  feature_code = col_character(),
  local_authority = col_character(),
  less_than_11_mins = col_double(),
  an_11_minute_walk_or_more = col_double(),
  a_5_minute_walk_or_less = col_double(),
  within_a_6_10_minute_walk = col_double(),
  dont_know = col_double(),
  median_age = col_double(),
  population_density = col_double(),
  population_density_deciles = col_double(),
  age_0_15_percent = col_double(),
  age_65_percent = col_double(),
  old_age_dependency_ratio_oadr = col_double()
)
urban_rural_2019_with_ex_den <- read_csv("data/urban_rural_2019_with_ex_den.csv") 

── Column specification ─────────────────────────────────────────────────────────────────────────────────
cols(
  year = col_double(),
  feature_code = col_character(),
  local_authority = col_character(),
  type = col_character(),
  class = col_character(),
  less_than_11_mins = col_double(),
  an_11_minute_walk_or_more = col_double(),
  a_5_minute_walk_or_less = col_double(),
  within_a_6_10_minute_walk = col_double(),
  dont_know = col_double(),
  median_age = col_double(),
  population_density = col_double(),
  population_density_deciles = col_double(),
  age_0_15_percent = col_double(),
  age_65_percent = col_double(),
  old_age_dependency_ratio_oadr = col_double()
)
la <- st_read("https://opendata.arcgis.com/datasets/2698b6825e88404ab6272a5ff7f59ee6_0.geojson")
Reading layer `Local_Authority_Districts_(December_2018)_Boundaries_UK_BGC' from data source `https://opendata.arcgis.com/datasets/2698b6825e88404ab6272a5ff7f59ee6_0.geojson' using driver `GeoJSON'
Simple feature collection with 391 features and 10 fields
geometry type:  MULTIPOLYGON
dimension:      XY
bbox:           xmin: -8.649996 ymin: 49.86478 xmax: 1.763571 ymax: 60.86078
CRS:            4326
loc_authority_with_extra_density_2019     #S12000049    #S12000050
loc_authority_with_extra_density_2019 <-
  loc_authority_with_extra_density_2019 %>% 
  mutate(feature_code = recode(feature_code,  S12000049 = "S12000046", S12000050 = "S12000044" 
         )
  )

urban_rural_2019_with_ex_den <-
  urban_rural_2019_with_ex_den %>% 
  mutate(feature_code = recode(feature_code,  S12000049 = "S12000046", S12000050 = "S12000044" 
         )
  )
la %>% 
  filter(lad18nm == "North Lanarkshire")  #S12000046 S12000044
Simple feature collection with 1 feature and 10 fields
geometry type:  MULTIPOLYGON
dimension:      XY
bbox:           xmin: -4.19449 ymin: 55.73476 xmax: -3.711127 ymax: 56.03136
CRS:            4326
  objectid   lad18cd           lad18nm lad18nmw  bng_e  bng_n    long     lat st_areashape
1      365 S12000044 North Lanarkshire          277984 665608 -3.9514 55.8681    472257663
  st_lengthshape                       geometry
1       160705.9 MULTIPOLYGON (((-4.020121 5...
la_loc_authority_ex_den <- inner_join(loc_authority_with_extra_density_2019, la, by = c("feature_code" = "lad18cd"))

la_loc_authority_ex_den
la_urban_rural_2019 <- left_join(urban_rural_2019_with_ex_den, la, by = c("feature_code" = "lad18cd"))

la_urban_rural_2019
la_loc_authority_ex_den_no_shetland <- 
  la_loc_authority_ex_den %>% 
  filter(local_authority != "Shetland Islands")
la_loc_authority_ex_den_with_shetland <- 
  la_loc_authority_ex_den %>% 
  filter(local_authority == "Shetland Islands")
map_1_5_min_walk <-
ggplot() +
  geom_sf(data = la_loc_authority_ex_den_no_shetland, mapping = aes(geometry = geometry, fill = a_5_minute_walk_or_less), colour = "grey", size = 0.005) +
  theme_void() +
  labs(title = "Percentage of Population Within a 5-minute Walk of Green Space",
       subtitle = "Mean figures between 2013 - 2019 - Scotland",
       fill = "% within 5 min Green Space") +
  theme(legend.key.size = unit(0.3, "cm"),
        legend.key.width = unit(0.3, "cm"),
        legend.title = element_text(size = 7),
        legend.text = element_text(size = 8),
        plot.title = element_text(size = 12, hjust = 0.2),
        plot.subtitle = element_text(size = 10, hjust = 0.067)
        
  ) 
extra_5_mins_shetland <-
ggplot() +
  geom_sf(data = la_loc_authority_ex_den_with_shetland, mapping = aes(geometry = geometry, fill = a_5_minute_walk_or_less), colour = "grey", size = 0.005) +
  theme_void() +
  theme(
    legend.position = "none"
  )
map_2_pop_density <-
ggplot() +
  geom_sf(data = la_loc_authority_ex_den_no_shetland, mapping = aes(geometry = geometry, fill = factor(population_density_deciles)), colour = "grey", size = 0.005) +
  theme_void() +
  labs(title = "Population Density",
       fill = "Pop. Density Deciles (ONS)") +
  theme(legend.key.size = unit(0.3, "cm"),
        legend.key.width = unit(0.3, "cm"),
        legend.title = element_text(size = 7),
        legend.text = element_text(size = 8),
        plot.title = element_text(size = 12, hjust = 0.1),
  ) +
  scale_fill_hue(h = c(180, 390),
                 l = 50, c = 70)
extra_pop_dens_shetland <-
ggplot() +
  geom_sf(data = la_loc_authority_ex_den_with_shetland, mapping = aes(geometry = geometry, fill = factor(population_density_deciles)), colour = "grey", size = 0.005) +
  theme_void() +
  theme(
    legend.position = "none") +
  scale_fill_hue(h = c(180, 390),
                 l = 50, c = 70) 
extra_pop_dens_shetland %>% 
ggsave(filename="~/presentation_pngs/extra_pop_dens_shetland.png", 
       device="png", 
       dpi=500)
Saving 7 x 7 in image
write_csv(la_loc_authority_ex_den, "data/presentation_data/map_2_la_loc_authority_ex_den.csv")
write_csv(la_urban_rural_2019, "data/presentation_data/map_3_la_urban_rural_2019.csv")
la_urban_rural_2019_from_file <- read_csv("data/presentation_data/map_2_la_loc_authority_ex_den.csv") %>% clean_names()
la_urban_rural_2019_from_file
# Need to adjust the zoom, angle and color. 
ggplot() +
  geom_sf(data = la_urban_rural_2019_from_file, mapping = aes(geometry = geometry, fill = a_5_minute_walk_or_less), colour = "grey")
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkoc2YpCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoamFuaXRvcikKYGBgCgpgYGB7cn0KbG9jX2F1dGhvcml0eV93aXRoX2V4dHJhX2RlbnNpdHlfMjAxOSA8LSByZWFkX2NzdigiZGF0YS9sb2NfYXV0aG9yaXR5X3dpdGhfZXh0cmFfZGVuc2l0eV8yMDE5LmNzdiIpCgp1cmJhbl9ydXJhbF8yMDE5X3dpdGhfZXhfZGVuIDwtIHJlYWRfY3N2KCJkYXRhL3VyYmFuX3J1cmFsXzIwMTlfd2l0aF9leF9kZW4uY3N2IikgCmBgYAoKYGBge3J9CmxhIDwtIHN0X3JlYWQoImh0dHBzOi8vb3BlbmRhdGEuYXJjZ2lzLmNvbS9kYXRhc2V0cy8yNjk4YjY4MjVlODg0MDRhYjYyNzJhNWZmN2Y1OWVlNl8wLmdlb2pzb24iKQoKYGBgCgpgYGB7cn0KbG9jX2F1dGhvcml0eV93aXRoX2V4dHJhX2RlbnNpdHlfMjAxOSAgICAgI1MxMjAwMDA0OSAgICAjUzEyMDAwMDUwCmBgYAoKCmBgYHtyfQpsb2NfYXV0aG9yaXR5X3dpdGhfZXh0cmFfZGVuc2l0eV8yMDE5IDwtCiAgbG9jX2F1dGhvcml0eV93aXRoX2V4dHJhX2RlbnNpdHlfMjAxOSAlPiUgCiAgbXV0YXRlKGZlYXR1cmVfY29kZSA9IHJlY29kZShmZWF0dXJlX2NvZGUsICBTMTIwMDAwNDkgPSAiUzEyMDAwMDQ2IiwgUzEyMDAwMDUwID0gIlMxMjAwMDA0NCIgCiAgICAgICAgICkKICApCgp1cmJhbl9ydXJhbF8yMDE5X3dpdGhfZXhfZGVuIDwtCiAgdXJiYW5fcnVyYWxfMjAxOV93aXRoX2V4X2RlbiAlPiUgCiAgbXV0YXRlKGZlYXR1cmVfY29kZSA9IHJlY29kZShmZWF0dXJlX2NvZGUsICBTMTIwMDAwNDkgPSAiUzEyMDAwMDQ2IiwgUzEyMDAwMDUwID0gIlMxMjAwMDA0NCIgCiAgICAgICAgICkKICApCmBgYAoKCmBgYHtyfQpsYSAlPiUgCiAgZmlsdGVyKGxhZDE4bm0gPT0gIk5vcnRoIExhbmFya3NoaXJlIikgICNTMTIwMDAwNDYgUzEyMDAwMDQ0CmBgYAoKCmBgYHtyfQpsYV9sb2NfYXV0aG9yaXR5X2V4X2RlbiA8LSBpbm5lcl9qb2luKGxvY19hdXRob3JpdHlfd2l0aF9leHRyYV9kZW5zaXR5XzIwMTksIGxhLCBieSA9IGMoImZlYXR1cmVfY29kZSIgPSAibGFkMThjZCIpKQoKbGFfbG9jX2F1dGhvcml0eV9leF9kZW4KYGBgCgpgYGB7cn0KbGFfdXJiYW5fcnVyYWxfMjAxOSA8LSBsZWZ0X2pvaW4odXJiYW5fcnVyYWxfMjAxOV93aXRoX2V4X2RlbiwgbGEsIGJ5ID0gYygiZmVhdHVyZV9jb2RlIiA9ICJsYWQxOGNkIikpCgpsYV91cmJhbl9ydXJhbF8yMDE5CmBgYAoKYGBge3J9CmxhX2xvY19hdXRob3JpdHlfZXhfZGVuX25vX3NoZXRsYW5kIDwtIAogIGxhX2xvY19hdXRob3JpdHlfZXhfZGVuICU+JSAKICBmaWx0ZXIobG9jYWxfYXV0aG9yaXR5ICE9ICJTaGV0bGFuZCBJc2xhbmRzIikKYGBgCgpgYGB7cn0KbGFfbG9jX2F1dGhvcml0eV9leF9kZW5fd2l0aF9zaGV0bGFuZCA8LSAKICBsYV9sb2NfYXV0aG9yaXR5X2V4X2RlbiAlPiUgCiAgZmlsdGVyKGxvY2FsX2F1dGhvcml0eSA9PSAiU2hldGxhbmQgSXNsYW5kcyIpCmBgYAoKCgpgYGB7cn0KbWFwXzFfNV9taW5fd2FsayA8LQpnZ3Bsb3QoKSArCiAgZ2VvbV9zZihkYXRhID0gbGFfbG9jX2F1dGhvcml0eV9leF9kZW5fbm9fc2hldGxhbmQsIG1hcHBpbmcgPSBhZXMoZ2VvbWV0cnkgPSBnZW9tZXRyeSwgZmlsbCA9IGFfNV9taW51dGVfd2Fsa19vcl9sZXNzKSwgY29sb3VyID0gImdyZXkiLCBzaXplID0gMC4wMDUpICsKICB0aGVtZV92b2lkKCkgKwogIGxhYnModGl0bGUgPSAiUGVyY2VudGFnZSBvZiBQb3B1bGF0aW9uIFdpdGhpbiBhIDUtbWludXRlIFdhbGsgb2YgR3JlZW4gU3BhY2UiLAogICAgICAgc3VidGl0bGUgPSAiTWVhbiBmaWd1cmVzIGJldHdlZW4gMjAxMyAtIDIwMTkgLSBTY290bGFuZCIsCiAgICAgICBmaWxsID0gIiUgd2l0aGluIDUgbWluIEdyZWVuIFNwYWNlIikgKwogIHRoZW1lKGxlZ2VuZC5rZXkuc2l6ZSA9IHVuaXQoMC4zLCAiY20iKSwKICAgICAgICBsZWdlbmQua2V5LndpZHRoID0gdW5pdCgwLjMsICJjbSIpLAogICAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gNyksCiAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDgpLAogICAgICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyLCBoanVzdCA9IDAuMiksCiAgICAgICAgcGxvdC5zdWJ0aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTAsIGhqdXN0ID0gMC4wNjcpCiAgICAgICAgCiAgKSAKYGBgCgpgYGB7cn0KZXh0cmFfNV9taW5zX3NoZXRsYW5kIDwtCmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBsYV9sb2NfYXV0aG9yaXR5X2V4X2Rlbl93aXRoX3NoZXRsYW5kLCBtYXBwaW5nID0gYWVzKGdlb21ldHJ5ID0gZ2VvbWV0cnksIGZpbGwgPSBhXzVfbWludXRlX3dhbGtfb3JfbGVzcyksIGNvbG91ciA9ICJncmV5Iiwgc2l6ZSA9IDAuMDA1KSArCiAgdGhlbWVfdm9pZCgpICsKICB0aGVtZSgKICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIgogICkKYGBgCgoKYGBge3J9Cm1hcF8yX3BvcF9kZW5zaXR5IDwtCmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBsYV9sb2NfYXV0aG9yaXR5X2V4X2Rlbl9ub19zaGV0bGFuZCwgbWFwcGluZyA9IGFlcyhnZW9tZXRyeSA9IGdlb21ldHJ5LCBmaWxsID0gZmFjdG9yKHBvcHVsYXRpb25fZGVuc2l0eV9kZWNpbGVzKSksIGNvbG91ciA9ICJncmV5Iiwgc2l6ZSA9IDAuMDA1KSArCiAgdGhlbWVfdm9pZCgpICsKICBsYWJzKHRpdGxlID0gIlBvcHVsYXRpb24gRGVuc2l0eSIsCiAgICAgICBmaWxsID0gIlBvcC4gRGVuc2l0eSBEZWNpbGVzIChPTlMpIikgKwogIHRoZW1lKGxlZ2VuZC5rZXkuc2l6ZSA9IHVuaXQoMC4zLCAiY20iKSwKICAgICAgICBsZWdlbmQua2V5LndpZHRoID0gdW5pdCgwLjMsICJjbSIpLAogICAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gNyksCiAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDgpLAogICAgICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyLCBoanVzdCA9IDAuMSksCiAgKSArCiAgc2NhbGVfZmlsbF9odWUoaCA9IGMoMTgwLCAzOTApLAogICAgICAgICAgICAgICAgIGwgPSA1MCwgYyA9IDcwKQoKCmBgYAoKYGBge3J9CmV4dHJhX3BvcF9kZW5zX3NoZXRsYW5kIDwtCmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBsYV9sb2NfYXV0aG9yaXR5X2V4X2Rlbl93aXRoX3NoZXRsYW5kLCBtYXBwaW5nID0gYWVzKGdlb21ldHJ5ID0gZ2VvbWV0cnksIGZpbGwgPSBmYWN0b3IocG9wdWxhdGlvbl9kZW5zaXR5X2RlY2lsZXMpKSwgY29sb3VyID0gImdyZXkiLCBzaXplID0gMC4wMDUpICsKICB0aGVtZV92b2lkKCkgKwogIHRoZW1lKAogICAgbGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArCiAgc2NhbGVfZmlsbF9odWUoaCA9IGMoMTgwLCAzOTApLAogICAgICAgICAgICAgICAgIGwgPSA1MCwgYyA9IDcwKSAKYGBgCgpgYGB7cn0KZXh0cmFfcG9wX2RlbnNfc2hldGxhbmQgJT4lIApnZ3NhdmUoZmlsZW5hbWU9In4vcHJlc2VudGF0aW9uX3BuZ3MvZXh0cmFfcG9wX2RlbnNfc2hldGxhbmQucG5nIiwgCiAgICAgICBkZXZpY2U9InBuZyIsIAogICAgICAgZHBpPTUwMCkKYGBgCgoKCmBgYHtyfQp3cml0ZV9jc3YobGFfbG9jX2F1dGhvcml0eV9leF9kZW4sICJkYXRhL3ByZXNlbnRhdGlvbl9kYXRhL21hcF8yX2xhX2xvY19hdXRob3JpdHlfZXhfZGVuLmNzdiIpCmBgYAoKYGBge3J9CndyaXRlX2NzdihsYV91cmJhbl9ydXJhbF8yMDE5LCAiZGF0YS9wcmVzZW50YXRpb25fZGF0YS9tYXBfM19sYV91cmJhbl9ydXJhbF8yMDE5LmNzdiIpCmBgYAoKYGBge3J9CmxhX3VyYmFuX3J1cmFsXzIwMTlfZnJvbV9maWxlIDwtIHJlYWRfY3N2KCJkYXRhL3ByZXNlbnRhdGlvbl9kYXRhL21hcF8yX2xhX2xvY19hdXRob3JpdHlfZXhfZGVuLmNzdiIpICU+JSBjbGVhbl9uYW1lcygpCmBgYAoKYGBge3J9CmxhX3VyYmFuX3J1cmFsXzIwMTlfZnJvbV9maWxlCmBgYAoKYGBge3J9CiMgTmVlZCB0byBhZGp1c3QgdGhlIHpvb20sIGFuZ2xlIGFuZCBjb2xvci4gCmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBsYV91cmJhbl9ydXJhbF8yMDE5X2Zyb21fZmlsZSwgbWFwcGluZyA9IGFlcyhnZW9tZXRyeSA9IGdlb21ldHJ5LCBmaWxsID0gYV81X21pbnV0ZV93YWxrX29yX2xlc3MpLCBjb2xvdXIgPSAiZ3JleSIpCmBgYAoK